package com.nifostasky.comic.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.nio.charset.UnsupportedCharsetException;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

/**
 * json工具类
 */
public class JsonUtil {
    /**
     * 验证json是否符合规则
     * @param log
     * @return
     */
    public static boolean isJSONValidate(String log){
        try {
            JSON.parse(log);
            return true;
        } catch (JSONException e) {
            return false;
        }
    }

    /**
     * json转对象
     * @param str json字符串
     * @param tClass 转换对象
     * @param <T> 返回对象
     * @return
     */
    public static  <T extends Object> T  handleJsonObject(String str,Class<T> tClass){
        if (Objects.nonNull(str) && JsonUtil.isJSONValidate(str)){
            try{
                T parse = null;
                parse = JSON.parseObject(str, tClass);
                return parse;
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return null;
    }

    /**
     * json转Array
     * @param str json字符串
     * @param tClass 转换对象
     * @param <T> 返回对象
     * @return
     */
    public static <T extends Object> List<T>  handleJsonArray(String str,Class<T> tClass){
        if (Objects.nonNull(str) && JsonUtil.isJSONValidate(str)){
            try{
                List<T> parse = null;
                parse = JSON.parseArray(str, tClass);
                return parse;
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return null;
    }
}
